#include "plugin_output.h"

/**
 * @brief plugin_output::initUi 初始化ui
 */
void plugin_output::initUi()
{
    static bool initFlag = true;
    if (initFlag)
    {
        initFlag = false;
        // 添加 UI 到布局中
        plugin_output_ui->verticalLayout->addWidget(&mOutputConfigWidget);
        // 信号绑定
        QObject::connect(&mOutputConfigWidget, &outputConfigWidget::signalToForward,
                         this, [this](const QString &arg)
                         { emit messageFromPlugin(pluginName(), arg); });
    }
}

/**
 * @brief sendMessageToPlugin 接收来自其他任务的信息
 * @param msg
 */
void plugin_output::sendMessageToPlugin(const QString &msg)
{
    initUi();
    processJsonCommand(msg);
}

/**
 * @brief plugin_output::processJsonCommand 解析json字符串
 * @param jsonStr
 */
void plugin_output::processJsonCommand(const QString &jsonStr)
{
    // 在这里添加 JSON 命令处理逻辑
    QString err;
    if (false == mOutputConfigWidget.processJsonCommand(jsonStr, &err))
    {
        emit messageFromPlugin(pluginName(), err);
    }
}
